<?php

define('PHP_EXT','php');
define('TPL_EXT','tpl');
define('PATH_TPL','./php_tpl/');
define('PATH_CODE','./php_code/');
define('PATH_PAGE','./php_page/');
define('PATH_LIB','./lib/');
define('PATH_CLASS','./php_classe/');

require_once(PATH_LIB.'lolita.inc');
require_once(PATH_LIB.'batch.php');
require_once(PATH_CLASS.'autoloader.class.php');
require_once(PATH_CLASS.'theme.class.php');
require_once(PATH_CLASS.'css.class.php');
require_once(PATH_CLASS.'js.class.php');

autoloader::init();
// On définit la liste des thèmes disponibles pour le site */
theme::add('orange');
theme::add('bleu');
theme::add('vert');
theme::add('rose');
/* On en choisit un */
//$theme = css::playRandomTheme();


//css::add('ui/jquery-ui-1.9.1.min.css',1,array(),css::getThemePath());
//css::add('ui/jquery-ui-1.9.1.min.css',1,array(),js::getThemePath());


//js::playTheme($theme);

setlocale (LC_ALL, array('fr_FR.utf8','fra','french'));

// timezone pour un francais en France
@date_default_timezone_set('Europe/Paris');

if($_SERVER['SERVER_ADDR']=='127.0.0.1'){
  define('SERVER_NAME','localhost');
  define('NOM_DB', 'associatws1979');

  define('NOM_USER','associatws1979');
  define('PWD_DB','caucus79');

  define('LOCAL',true);

  define('DEBBUG',false);
  define('DEBBUG_SQL',false);
  define('SMARTY_DEBBUG',false);

  define('SITE_URL','http://localhost/newLolita/'); //'http://www.association-lolita.com/'); //UtilisÃ©e nottement dans les mails
  define('SEND_MAIL',false);

  define('USE_JQUERY',true);
  define('USE_PROTO',false);
} else {
  define('SERVER_NAME','mysql5-1.perso');
  define('NOM_DB', 'associatws1979');
  define('NOM_USER','associatws1979');
  define('PWD_DB','caucus79');

  define('LOCAL',false);

  define('DEBBUG',false);
  define('DEBBUG_SQL',false);
  define('SMARTY_DEBBUG',false);
//'http://association.lolita.free.fr/');//
  define('SITE_URL','http://www.association-lolita.com/'); //UtilisÃ©e nottement dans les mails
  define('SEND_MAIL',false);

  define('USE_JQUERY',true);
  define('USE_PROTO',true);
  
}

function setSiteTo($to=''){
	  DataBase::setTablesNames(array(
     "t_batch"
    ,"t_batch_match"
    ,"t_batch_tick"
    ,"t_compets"
    ,"t_compos"
    ,"t_documents"
    ,"t_documents_type"
    ,"t_droits"
    ,"t_dyn_images"
    ,"t_equipes"
    ,"t_etoiles"
    ,"t_etoile_type"
    ,"t_fonctions"
    ,"t_fonctions_type"
    ,"t_fonctions_warn"
    ,"t_liens_ec"
    ,"t_liens_es"
    ,"t_liens_mes"
    ,"t_liens_me"
    ,"t_liens_mfs"
    ,"t_liens_ms"
    ,"t_lieux"
    ,"t_matchs"
    ,"t_matchs_type"
    ,"t_membres"
    ,"t_news" 	
    ,"t_params" 
    ,"t_quotes"
    ,"t_saisons"
    ,"t_saisons_type"
    ,"t_users"
  ));
  DataBase::setTablePrefix($to.'_'); 
  
}

  

define('INDEX_PAGE','index.php');
define('GRAIN_DE_SABLE','mon_grain_de_sable_cest_toi');
// Time out de session
define('SESSION_TIMEOUT',60*10*100);				// ExprimÃ© en secondes 60*10
define('DEFAULT_PAGE','accueil');


////////////////////////
// SESSION PARAMETERS //
////////////////////////
session_name("LOLITA_SID");
session_start();

if(DEBBUG==true){
	if(!isset($_COOKIE['DBGSESSID'])){
		header('Set-Cookie: DBGSESSID=1@clienthost:7869;d=1,p=1;path=/;'); //Using header caus php<5 doesn't have setrawcookie
	}
	else{
		header('Set-Cookie: DBGSESSID=false; path=/; expires=saturday, 25-Sep-99 12:12:30 gmt;');
		setcookie("DBGSESSID",false,0,'/');
		unset($_COOKIE['DBGSESSID']);
	}
}


global $mot,$_UP,$_PLAYER,$db,$__page,$__PAGE,$_REPORT,$param;

$_REPORT=(isset($_SESSION['_REPORT']) ? $_SESSION['_REPORT'] : array());

//$mot['tpl_path']	=	PATH_TPL;
//$mot['php_path']	=	PATH_PATH;
//$mot['php_page']	=	PATH_PAGE;
//PATH_LIB	=	PATH_LIB;

getSitePage($__page,$__PAGE);

//require_once PATH_LIB.'database.php';				// Base
//include(PATH_LIB.'template.php');		// Templates
include(PATH_LIB.'language.inc');		// Fonctions liÃ© aux langues
include(PATH_LIB.'autentification.inc');// Fonctions liÃ© au login
include(PATH_LIB.'account.inc');		// Fonctions liÃ© au compte
include(PATH_LIB.'smarty.caller.php');		// Fonctions liÃ© au compte
require(PATH_LIB.'/smarty/SmartyBC.class.php');

//********* CrÃ©ation des classes globales

$db   = getDb();

if($_SERVER['HTTP_HOST']=='preprod.association-lolita.com'){
	setSiteTo('preprod');
}

if($_SERVER['HTTP_HOST']=='new.association-lolita.com'){
	setSiteTo('new');
}


$smarty = commun::getSmarty();


// Ancienne URL ?page=champ&type=C&point=calendrier => ?page=calendrier&type=C

route::addRoute('?page=champ&type=C&point=calendrier','?page=calendrier&type=C');
route::addRoute('?page=champ&type=C&point=photo','?page=photos&type=C');
route::addRoute('?page=info&point=equipe&point=asso','?page=contact');
route::addRoute('?page=souvenir&point=fame','?page=membre&type=H');
route::addRoute('?page=champ&type=C&point=equipe','?page=membre&type=E');
route::addRoute('?page=champ&type=C&point=resultat&resultat=classement','?page=membre&type=E');

route::reRoute($_GET);

//***********************************************

getSiteParams();

is_loggued();

$saison_courante=$db->SelectFirst('select * from t_saisons where saison_courante=1');
$saison_courante_id=$saison_courante['saison_id'];

$smarty->assign(array(
	 'PHP_EXT'            => PHP_EXT
	,'__page'             => $__page
	,'_URL'               => getUrl()
	,'_URL_NO_GET'        => getUrl("",false)
	,'_GET'               => $_GET
	,'_POST'              => $_POST
	,'_INDEX_PAGE'        => INDEX_PAGE
	,'_SITE_URL'          => SITE_URL
	,'_USER'              =>  isset($_SESSION['user']) ? $_SESSION['user']:null
    ,'_SAISON_COURANTE'   =>$saison_courante
    ,'_SAISON_COURANTE_ID'=>$saison_courante_id
));

$smarty->assign('_SESSION',$_SESSION);




// Function: getSitePage
// Description : Renvoi la page en fonction de GET et
// des valeurs par dÃ©faut
function getSitePage(&$__page,&$__PAGE){
	global $_GET;
    
    
	$__page= strtolower((isset($_GET['page']) ? $_GET['page'] : DEFAULT_PAGE));

//	if(!file_exists(PATH_TPL.'site_'.$__page.'.'.TPL_EXT))
//		$__page=DEFAULT_PAGE;

	$__page=strtolower($__page);
	$__PAGE=strtoupper($__page);
	
	$_GET['page'] = $__page;
	
}

// Function: getSiteLang
// Description : Renvoi la lang en fonction de GET et
// des valeurs par dÃ©faut
function getSiteLang(&$LANG){
	global $_GET;
	$LANG= (isset($_GET['lang']) ? $_GET['lang'] : DEFAULT_LANG);
	if(!file_exists($mot['lang_path'].$LANG.'/.game.inc'))
		$LANG=DEFAULT_LANG;
}	// getSiteLang

// Function: getURL
// Description : Renvoi l'URL de la page courante, avec le GET, la nom de base,
// sans les valeurs contenues dans avoidValues
function getURL($avoidValues="",$withGET=true,$withBaseName=true,$protocol="http://"){

	global $_GET,$PHP_SELF,$_SERVER;

	$PORT=isset($_SERVER['SERVER_PORT']) ? ':'.$_SERVER['SERVER_PORT'] : '';

	$SERVER_ADDR1=(isset($_SERVER['SERVER_NAME']) ? $protocol.$_SERVER['SERVER_NAME'].$PORT : "./");

	$URL=$SERVER_ADDR1.($withBaseName ? $_SERVER["PHP_SELF"] : dirname($_SERVER["PHP_SELF"]));

	
	if(!$withGET)
		return $URL;

	$URL.='?';//sid='.session_id();

	$avoidValues=explode(",",$avoidValues);

	foreach($_GET as $key=>$value){
		if(!in_array($key,$avoidValues))
			$URL.='&'.$key.'='.$value;
	} unset($key,$value);

	reset($_GET);

	return str_replace('?&','?',$URL);
}

function getSiteParams(){
global $param,$db,$smarty;
$sql='select * from t_params';

$db->Select($sql);
while($row=$db->Next()){
	$param[$row['param_name']]=$row['param_value'];
}
$smarty->assign('param',$param);
}

// Function: refresh
// Description: Force le rafraÃ®chissement de la page (ou vers une autre url)
// AprÃ©s un certain temps
// Last modification : 31/10/2005 13:06:04

function refresh($url,$time){
	global $smarty;
	if(!isset($url)) 	$url='./';
	if(!isset($time)) 	$time=0;

	$smarty->assign('refresh',Array('url' => $url , 'time' => $time));
}

// Function: bouge_de_la
// Description: Fonction de renvoi Ã  un page donnÃ©e
// Last modification : 15/08/2005 23:29:43
//  JPS : Test si les en-tÃªtes ont dÃ©jÃ  Ã©tÃ© envoyÃ©s, on fait un refresh HTML
function bouge_de_la($page,$delai=''){
	global $smarty,$mot,$_REPORT;

	$_SESSION['_REPORT']=$_REPORT;

	if(!is_long($delai))	$delai=1;

    if(!headers_sent())
		header("Location: ".$page);
	else{
		refresh($page,$delai);
	}

	exit;
}

// Function: trace
// Description : Ecrit le texte dans un fichier trace.txt a la racine
function trace($txt){
	$file=fopen('./trace.txt', 'a+');
	fwrite($file,$txt.chr(13).chr(10));
}

// Function: spy
// Description : UtilisÃ© en debug pour faire des tests, ne pas passer par des echos
// qui doivent uniquement servire Ã  l'affichage
function spy($txt=''){
	global $_SPY_REPORT;
	
	if(is_array($txt))
		return spy_r($txt);
	
	$_SPY_REPORT[]='Message : '.$txt;
}

// Function: isErr
// Description : Indique s'il y'a eu des erreurs
function isErr(){
	global $_REPORT;
	return is_array($_REPORT['err']);
}

// Function: reportErr
// Description : ajoute une erreur dans le rapport d'Ã©xÃ©cution
function reportErr($txt){
	global $_REPORT;
	$_REPORT['err'][]=$txt;
}

// Function: reportOk
// Description : ajoute un ok dans le rapport d'Ã©xÃ©cution
function reportOk($txt){
	global $_REPORT;
	$_REPORT['ok'][]=$txt;
}

// Function: reportWarn
// Description : ajoute un warning dans le rapport d'Ã©xÃ©cution
function reportWarn($txt){
	global $_REPORT;
	$_REPORT['warn'][]=$txt;
}

//	Function : fileExt
//	Description: Renvoi l'extension du fichier passÃ© en paramÃ¨tre
function fileExt($file){
	return(array_pop(explode('.',$file)));
}


// Function: spy_r = spy pour des tableaux
// Description : UtilisÃ© en debug pour faire des tests, ne pas passer par des echos
// qui doivent uniquement servire Ã  l'affichage

function spy_recurse($tbl,$br=false){
	$txt='';
	if($br)
		$txt.='<ul><li>';

	$txt.='Array (';

	if($br)
		$txt.='</li>';

	foreach($tbl as $key=>$val){

		if(is_array($val)){
			$val=spy_recurse($val,$br);
		}
		
		$txt.='['.$key.'] => '.$val.' ';
	}
	
	$txt.=')';

	if($br)
		$txt.='</li></ul>';
	
	return $txt;
}

function spy_r($tbl,$txt='',$br=true){
	global $_SPY_REPORT;
	if($txt)
		$_SPY_REPORT[]='Message : '.$txt;

	$txt=spy_recurse($tbl,$br);

	$_SPY_REPORT[]=$txt;
}


function getmicrotime(){
	list($usec, $sec) = explode(" ",microtime());
	return ((float)$usec + (float)$sec);
}

// Function: parsedocument()
// Description :  La fonction s'occupe de "parser" le document final
// Last modification : 18/08/2005 12:54:47

function parseDocument(){
	global $smarty,$showDelay,$__page,$mot;

    renderJs();
	$now = getmicrotime();
    $file = PATH_PAGE."$__page.page.php";;
    if(file_exists($file)){
      require_once($file);
      $page = new $__page($smarty);
    } else {
      require_once(PATH_PAGE.'defaultPage.page.php');
      $page = new defaultPage($smarty);
    }
    
    $layout = $page->getLayout();

    $smarty->loadFilter("output","lolita");
    $smarty->caching = Smarty::CACHING_LIFETIME_SAVED;
    $smarty->setCacheLifetime(0);
	$body   = $smarty->fetch($layout);
    $smarty->caching = Smarty::CACHING_LIFETIME_SAVED;
    $smarty->setCacheLifetime(3600);
	$footer = $smarty->fetch('site_footer.'.TPL_EXT);
    // On récupère le header en dernier car le footer et le body
    // ont peut-être necessités des css
    $smarty->caching = Smarty::CACHING_OFF;
	$header = $smarty->fetch('site_header.'.TPL_EXT);
    $smarty->compile_id = md5($_SERVER['REQUEST_URI']);
    
    // Finalement on affiche le rendu final
    echo $header.$body.$footer;

    session::set("last", array(
         'GET' => serialize($_GET)
    ));
    
    $smarty->caching = Smarty::CACHING_LIFETIME_CURRENT;
}

// Function: parseReport()
// Description :  La fonction s'occupe d'afficher les erreurs
// Last modification : 18/08/2005 12:54:47
function parseReport($report=''){
	global $smarty,$_REPORT;

	if($report='' || ! is_array($report))
		$report=$_REPORT;

	if(!is_array($report))
		return;

	
	$smarty->assign('report',$report);
	$smarty->assign('_REPORT',$report);
	
	unset($_SESSION['_REPORT'],$_REPORT);
}

function parseSpyReport(){
	global $smarty,$_SPY_REPORT,$mot;
	
	//print_r($_SPY_REPORT);
	
	if(!is_array($_SPY_REPORT))
		return;
		
	$smarty->assign('_SPY_REPORT',$_SPY_REPORT);
	$smarty->display('spy_report.'.TPL_EXT);
}


/***********************************************
/* Encode le tableau passÃ© en paramÃ¨tre par array_walk
/**********************************************/

function benc_utf8(&$val,$key){
		$val=utf8_encode($val);
}

/***********************************************
/* DÃ©code le tableau passÃ© en paramÃ¨tre
/**********************************************/
function decodeData($tbl){
	if(!is_array($tbl))
		return utf8_decode($tbl);
	
	foreach($tbl as $key=>$val){
		if(is_array($val))
			$tbl[$key]=decodeData($val);
		else
			$tbl[$key]=utf8_decode($val);
	}		

	return $tbl;		
}

/***********************************************
/* traduit une date au format jj/mm/AAAA en
/* timestamp unix
/**********************************************/

function sdatetounix($sdate,$defaut=0){
	// On formate les dates
	$date=preg_split('|[/.]|',$sdate);

	if(count($date)==3)
		$date=mktime(0,0,0,$date[1],$date[0],$date[2]);
	else
	    $date=$defaut;

	return($date);
}

function getLiensEquipesSaisons($id = 0,$by='equipe_id,saison_id'){
  $db = getDb();

  $sql =  "select * from t_liens_es as t_es";

  if($id!=0){
    $sql = sprintf("$sql where equipe_id=%d",$id);
  }

  if($by!=''){
    $ret = $db->SelectAllBy($sql, $by);
  } else {
    $ret = $db->SelectAll($sql);
  }

  return $ret;
}

function getMembres($id=0,$by='membre_id',$order_by='membre_nom'){
  $db = getDb();
  $sql= 'select * from t_membres';
  if($id<>0){
    $sql = sprintf("$sql where membre_id = %d",$id);
  }
  
  if(!empty($order_by)){
    $sql = sprintf("$sql order by %s",$order_by);
  }

  if($by<>''){
    $ret = $db->SelectAllBy($sql, $by);
  } else {
    $ret = $db->SelectAll($sql);
  }
  return $ret;
}

function getMembreLien($id,$text,$jquery=true,$pars=array()){

  $defPars = array(
       'addImg'=>false
      ,'imageSize' => 'miniature'
      ,'class'=>''
      ,'membre'=>array('membre_id'=>0)
      ,'lib'=>'%prenom% %surnom% %nom%'
      );

  $p = array_merge($defPars,$pars);

  $id = $p['id'];

  if($id == 0 ) $id = $p['membre_id'];
  if($id == 0 ) $id = $p['membre']['membre_id'];

  if($id == 0){
    return 'Anne Onymous';
  }

  if(empty($p['membre']) || empty($p['membre']['membre_id'])){
    $p['membre'] = getMembre($id);
  }

  $membre = $p['membre'];

  if(!isset($id)){
	$id = $membre['membre_id'];
  }
  
  if(!empty($text)){
    $texte = $text;
  }else{
    $texte = $p['lib'];
  }

  $texte = str_replace('%prenom%', $membre['membre_prenom'],$texte);
  $texte = str_replace('%surnom%', $membre['membre_surnom'],$texte);
  $texte = str_replace('%nom%', $membre['membre_nom'],$texte);

  if(isset($p['more'])){
    $texte .= ' '.$p['more'];
  }
  if($p['jquery']==true){
    $url = "./#!/membre/".urlencode($membre['membre_prenom']." ".$membre['membre_nom'])."/id/{$id}";
    $p['class'] =trim('membre-link ' . $p['class']);
  } else {
//    $page = 'souvenir';
//    $point= 'fame';
//    $url = SITE_URL . "index.php?page=$page&point=$point&membre=$id";
  }

  if($p['addImg']){
  $texte = '<span class="img">'.getDynImgHTML($id,'membre',array("size"=>$p['imageSize'])).'</span><span class="lib">'.$texte.'</span>';
    $p['class'] = trim('membre-image '.$p['class']);
  }

   return '<a href="'.$url.'" class="'.$p['class'].'">'	. $texte  . '</a>';

}

//function getSaisonCourante(){
//  global $saison_courante;
//  return $saison_courante;
//}
//
//function getSaisonCourantId(){
//  $saison = getSaisonCourante();
//
//  return isset($saison['saison_id']) ?  $saison['saison_id'] : 0;
//}

function getSaison($id=0,$by='',$order_by=''){
 $db = getDb();
  
 $sql =  "select * from t_saisons as t_s";

  if($id!=0){
    $sql = sprintf("$sql where saison_id=%d",$id);
  }
  
  if($order_by!=''){
    $sql = sprintf("$sql order by %s",$order_by);
  }

  if($by!=''){
    $ret = $db->SelectAllBy($sql, $by);
  } else {
    $ret = $db->SelectAll($sql);
  }  
  
  if($id!=0){
    $ret = $ret[0];
  }
  
  return $ret;
  
}

function getLieuLien($id,$text="",$class="",$pars=array()){
  if($text    ==  null) $text     = "";
  if($class   ==  null) $class    = "";
  if($pars    ==  null) $pars     = array();
  
  if(isset($pars['lieu']) && !is_null($pars['lieu']['lieu_id']) && $pars['lieu']['lieu_id']>0){
  $lieu = $pars['lieu'];
  } else {
    $lieu = lieu::getLieu($id);
  }
  
  if($lieu==''){
    return '';
  }
  
  $text = $lieu->lieu_nom;
  
  if(isset($pars['diminutif']) && $pars['diminutif']){
    $text = $lieu->lieu_diminutif;
  }
  $title='';
  if(isset($pars['title'])){
    if(is_bool($pars['title'])){
      if($pars['title']===true){
        $title='title="'.$lieu->lieu_nom.'"';
      }
    } else {
      $title='title="'.$pars['title'].'"';
    }
  }
    
  $lien = sprintf('<a href="#%d" class="%s" %s>%s</a>',$id,$class,$title,$text);
  
  return $lien;
    
}

function getEquipeLien($id,$text="",$class="",$jquery=true,$pars=array()){
  
  if($text    ==  null) $text     = "";
  if($class   ==  null) $class    = "";
  if($jquery  ==  null) $jquery   = true;
  if($pars    ==  null) $pars     = array();

  $defPars = array(
     'addImg'=>false
    ,'imageSize' => 'miniature'
    ,'class'=>''
    ,'equipe'=>array('equipe_id'=>0)
    ,'truncate'=>0
    );

  $p = array_merge($defPars,$pars);


  if(is_array($text) && isset($text['equipe_id']) && $text['equipe_id']!=0){
    $equipe=$text;
  }else {
    
    if(!is_array($text))  $texte = $text;
    $equipe = getEquipe($id);
 }



  if($texte==''){
    $texte = $equipe['equipe_nom'];
  }
  
  if(isset($p['truncate']) && $p['truncate']>0){
    if(strlen($texte)>$p['truncate']){
      $texte = substr($texte, 0, $p['truncate']-3).'...';
    }
  }

  if($p['addImg']){
  $texte = '<span class="img">'.getDynImgHTML($id,'equipe',array("size"=>$p['imageSize'])).'</span><span class="lib">'.$texte.'</span>';
    $p['class'] = trim('equipe-image '.$p['class']);
  }

  if($jquery){
    return '<a href="./#!/equipe/'.urlencode($equipe['equipe_nom']).'/id/'.$equipe['equipe_id'].'" class="equipe-link '.$class.'">'	. $texte  . '</a>';
  } else {

    $liens = getLiensEquipesSaisons($id);
    $point='equipe';

    if(isset($liens[$id]) && ($derniere_saison = array_pop($liens[$id]))){
      switch($derniere_saison['saison_type']){
      case 'C':
        $page = 'champ';
        $type = 'C';
        break;
      case 'J':
        $page = 'jl';
        $type = 'J';
        break;
      }

      if($derniere_saison['saison_type']!=getSaisonCourantId()){
        $page ='souvenir';
        $point='fame';
      }

    }
    $url = SITE_URL.'index.php?page='.$page.'&type='.$type.'&point='.$point.'&equipe='.$id ;
    //return '<a href="'.$url.'" class="'.$class.'">'	. $texte  . '</a>';
    return $texte;
  }
}

function getMembre($id){
  global $db;
  return $db->SelectFirst('select * from t_membres where membre_id='.$id);
}

//function getQuote($echo=true){
//  global $db;
//  $sql = 'select * from t_quotes order by rand() limit 1';
//  $quote = $db->SelectFirst($sql);
//  
//  $text = '<dl><dd><q>'.$quote['text'].'</q></dd><dt><cite>';
//  if(!empty($quote['auteur'])){
//	if(!empty($quote['auteur_id']))
//	  $text .= getMembreLien($quote['auteur_id'], $quote['auteur']);
//	else
//	  $text .= $quote['auteur'];
//  }
//  elseif(isset($quote['auteur_id']) && $quote['auteur_id'] !=0){
//	$membre = getMembre($quote['auteur_id']);
//	$text .=getMembreLien($membre['membre_id'], $membre);
//  }
//  else
//	$text .=$quote['auteur'];
//
//	$text .='</cite></dt></dl>';
//  
//  if($echo)
//	echo $text;
//	else
//	return $text;
//
//}

/**
 * get a DB access
 * @return DataBase 
 */
function getDb(){
  $db = new DataBase(NOM_DB,NOM_USER,PWD_DB,SERVER_NAME);
  return $db;
}

function getEquipes($id=0,$by='equipe_id',$cols='*',$order_by='equipe_id'){
  $db = getDb();

  $sql = "select $cols from t_equipes";

  if($id!=0){
    $sql = sprintf("$sql where equipe_id=%d",$id);
  }
  
  if(!empty($order_by)){
    $sql = sprintf("$sql order by %s",$order_by);
  }
  
  
  if(isset($by) && is_string($by) && $by!=''){
    return $db->SelectAllBy($sql,$by);
  } else {
    return $db->SelectAll($sql);
  }
}

function getEquipesParSaison($id=0,$idColumn='saison_id',$by='equipe_id',$cols='*',$order_by='equipe_id'){
  $db = getDb();

  $sql = sprintf("SELECT $cols FROM t_equipes AS t_e INNER JOIN `t_liens_es` as t_es USING ( equipe_id ) where t_es.$idColumn=%s",$id);
  
  if(!empty($order_by)){
    $sql .= sprintf(" order by %s",$order_by);
  }

   if(isset($by) && is_string($by) && $by!=''){
    $ret = $db->SelectAllBy($sql,$by);
  } else {
    $ret = $db->SelectAll($sql);
  }
  
  return $ret;
}


function getEquipeSaisons($id=0,$by='saison_id',$cols='*'){
  $db = getDb();

  $sql = sprintf("SELECT $cols FROM t_equipes AS t_e INNER JOIN `t_liens_es` USING ( equipe_id ) where t_e.equipe_id=%d",$id);

   if(isset($by) && is_string($by) && $by!=''){
    return $db->SelectAllBy($sql,$by);
  } else {
    return $db->SelectAll($sql);
  }
}


function getEquipe($id=0,$cols='*'){
  $equipes = getEquipes($id,'',$cols);

  return isset($equipes[0]) ? $equipes[0] : array();
}

function getCompets($by='compet_id'){
  $db = getDb();

  $sql = "select * from t_compets";
  if(isset($by) && $by!=''){
    return $db->SelectAllBy($sql,$by);
  } else {
    return $db->SelectAll($sql);
  }
}

//function getMatchLib($match,$pars = array()){
//  $equipes  = getEquipes();
//  $compet   = getCompets(); 
//  $defPars = array(
//       'lib'      =>  '%a% <span class="vs">%contre%</span> %b%'
//      ,'addLink'  =>  true
//      ,'contre'   => 'vs'
//      ,'shwo_equipes_lib'=>true
//      ,'shwo_match_lib'=>true
//      ,'shwo_compet_lib'=>true
//      );
//  $p = array_merge($defPars,$pars);
//  $ret = '';
//  if($match['match_equipe_A'] != 0 && $match['match_equipe_B'] != 0){
//    if($p['addLink']){
//      $libA = getEquipeLien($match['match_equipe_A'], $equipes[$match['match_equipe_A']],$p['class'],$p['jquery']);
//      $libB = getEquipeLien($match['match_equipe_B'], $equipes[$match['match_equipe_B']],$p['class'],$p['jquery']);
//    } else {
//      $libA = $equipes[$match['match_equipe_A']]['equipe_nom'];
//      $libB = $equipes[$match['match_equipe_B']]['equipe_nom'];
//    }
//    $p['lib'] = str_replace('%a%', $libA, $p['lib']);
//    $p['lib'] = str_replace('%b%', $libB, $p['lib']);
//
//    $ret = $p['shwo_equipes_lib'] ? str_replace('%contre%', $p['contre'], $p['lib']) : ' ';
//
//  } elseif (!empty($match['match_lib'])) {
//    
//    $ret = $p['shwo_match_lib'] ? $match['match_lib'] : ' ';
//    
//  } elseif (!empty ($match['match_compet_id']) && $match['match_compet_id']!=0){
//      $ret = $p['shwo_compet_lib'] ? $compet[$match['match_compet_id']]['compet_lib'] : ' ';
//  }
//  
//  if($ret==''){ //test '' cause si lib et pas show_lib, on a ' '
//    $ret = isset($p['unknown']) ? $p['unknown'] : '???';
//  }
//  
//  return $ret;
//}

$webJs = array();
function addJs($line){
  global $webJs;
  $webJs[] = $line;
}

function renderJs(){
  global $smarty,$webJs;
  if(is_array($webJs) && count($webJs)>0){
    $smarty->assign('footJs',$webJs);
  }
}

function isToday($timestamp){
  return  date("d.m.y") == date("d.m.y",$timestamp);
}

//$_POST=decodeData($_POST);
//$_GET=decodeData($_GET);

function replaceFile($typ,$id,$name){
  global $param;
  switch($typ){
    case 'equipe' :
      break;
  }
}

function isActiveForSeason($equipe_id,$saison_id=0){
  if($saison_id==0) $saison_id = getSaisonCourantId ();

  $db = getDb();

  $sql = "select count(*) from t_liens_es where equipe_id=$equipe_id and saison_id=$saison_id";

  $cnt = $db->Count($sql);

  return $cnt;

}

function isTeamResponsable($team_id){
  if(security::isAdmin()){
    return true;
  }
  $db   = getDb();
  $sql  = sprintf("select count(*) from t_liens_mes where membre_id=%d and equipe_id=%d and responsable=1",  getLogguedId(),$team_id);

  return $db->Count($sql);
}

function guid(){
     if (function_exists('com_create_guid')){
         return com_create_guid();
     }else{
         mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
         $charid = strtoupper(md5(uniqid(rand(), true)));
         $hyphen = chr(45);// "-"
         $uuid = chr(123)// "{"
                 .substr($charid, 0, 8).$hyphen
                 .substr($charid, 8, 4).$hyphen
                 .substr($charid,12, 4).$hyphen
                 .substr($charid,16, 4).$hyphen
                 .substr($charid,20,12)
                 .chr(125);// "}"
         return $uuid;
     }
 }

  function getUid(){
    $id = str_replace(array('{','}'),'',guid());
    return $id;
  }

  function getPwdMd5($pwd){
    $md5 = md5(GRAIN_DE_SABLE.$pwd.GRAIN_DE_SABLE);
    return $md5;
  }
  
  function getNewPwd(){
    $md5 = substr(md5(uniqid(rand(), true)),9,8);
    return $md5;
  }

  
  function array2Obj($array){
    $obj = new stdClass();
    if(  is_array($array)){
      foreach($array as $key=>$value){
        $obj->{$key} = is_array($value) ? array2Obj($value) : $value;
      }
    }

    return($obj);
  }  
?>
